package com.niiwoo.civet.account.dto.request;

import com.niiwoo.civet.account.enums.*;
import com.niiwoo.tripod.lanmao.enums.UserRoleEnum;
import com.niiwoo.tripod.provider.dto.request.PageRequestDTO;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 账单查询条件
 *
 * @author xiaoyingping
 */
@Setter
@Getter
public class BillQueryRequest extends PageRequestDTO implements Serializable {

    /**
     * 账单ID
     */
    private Long billId;
    /**
     * 用户ID
     */
    private String userId;

    /**
     * userBillBase表的id
     */
    private Long billBaseId;
    /**
     * 用户类型
     */
    private BillUserTypeEnum billUserType;
    /**
     * 账户角色
     */
    private UserRoleEnum role;
    /**
     * 项目ID
     */
    private Long projectId;
    /**
     * 项目包ID
     */
    private Long projectPackageId;
    /**
     * 订单ID
     */
    private String orderId;
    /**
     * 投资订单id
     */
    private Long investId;
    /**
     * 订单类型
     */
    private OrderTypeEnum orderTypeEnum;
    /**
     * 收支检索类型
     */
    private BillSecondSubjectEnum.InoutTypeEnum inoutType;
    /**
     * 科目检索类型
     */
    private BillFirstSubjectEnum.IndexBillTypeEnum indexBillType; //检索类型枚举

    private EntranceTypeEnum entranceTypeEnum;  //入口类型枚举

    private BillFirstSubjectEnum billFirstSubjectEnum; //一级科目

    //一级科目列表
    private List<String> firstCodeS;

    //二级科目列表
    private List<String> secondCodes;

    /**
     * 状态
     */
    private Byte status;

    /**
     * 是否显示
     */
    private BillIsVisibleEnum isVisibleEnum;

    /**
     * 账单创建时间
     */
    private Date minBillTime;
    private Date maxBillTime;

}
